Management and comparison of data from multiple information sources

ABSTRACT

Systems, methods, and software described herein provide enhancements for managing and comparing data from multiple information sources. In one implementation, a method of operating a comparison service includes obtaining, from a plurality of data sources, data objects in a plurality of formats corresponding to an event, wherein the data objects each comprise data items for the event. The method further includes maintaining a data structure for the event, wherein the data structure relates data items of similar data type from the plurality of data sources. The method also provides identifying a user request for a summary of the event, generating an event summary based on the data structure, and providing the event summary to the requesting user.

RELATED APPLICATIONS

This application hereby claims the benefit of and priority to U.S.patent application Ser. No. 16/265,866, titled “MANAGEMENT ANDCOMPARISON OF DATA FROM MULTIPLE INFORMATION SOURCES,” filed Feb. 1,2019, which claims the benefit of and priority to U.S. ProvisionalPatent Application No. 62/625,429, titled “MANAGEMENT AND COMPARISON OFDATA FROM MULTIPLE INFORMATION SOURCES,” filed Feb. 2, 2018, both ofwhich are hereby incorporated by reference in their entirety.

BACKGROUND

Organizations and services often aggregate data from a multitude ofsources to provide accurate information to a user of the organization orservice. This data may include numerical values, text based information,or some other data that can be provided to the user. However, althoughorganizations and services may require that information is obtained fromvarious sources, managing the data as it received can be difficult andcumbersome. In particular, issues often arise when the data is obtainedin various different formats, which causes difficulties in combining thedata with information from other sources. Additionally, difficulties canarise in presenting the information to a user of the organization orservice to permit the user to efficiently and effectively identifyrelevant information from the presentation.

Overview

Provided herein are enhancements for managing and comparing data frommultiple information sources. In one implementation, a method ofoperating a comparison service to manage data from multiple informationsources includes obtaining, from a plurality of data sources, dataobjects in a plurality of formats corresponding to an event, wherein thedata objects each comprise data items for the event. The method alsoincludes maintaining a common data structure for the event, wherein thedata structure relates data items of similar data type from theplurality of data sources. The method further provides identifying auser request for a summary of the event, and in response to the userrequest, generating an event summary based on the common data structure,wherein the event summary compares data items of similar type from theplurality of data sources. The method also includes providing the eventsummary to the requesting user.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the disclosure can be better understood with referenceto the following drawings. While several implementations are describedin connection with these drawings, the disclosure is not limited to theimplementations disclosed herein. On the contrary, the intent is tocover all alternatives, modifications, and equivalents.

FIG. 1 illustrates a computing environment for managing and comparingdata from multiple information sources according to an implementation.

FIG. 2 illustrates an operation of a comparison service according to animplementation.

FIG. 3 illustrates an operational scenario of a comparison serviceaccording to an implementation.

FIG. 4 illustrates a data structure for managing and comparing data frommultiple information sources according to an implementation.

FIG. 5 illustrates an operational scenario for prioritizing data for auser of a comparison service according to an implementation.

FIG. 6 illustrates a user interface for managing the comparison of dataaccording to an implementation.

FIG. 7 illustrates a computing system to manage and compare data frommultiple information sources according to an implementation.

DETAILED DESCRIPTION

FIG. 1 illustrates a computing environment 100 for managing andcomparing data from multiple information sources according to animplementation. Computing environment 100 includes information sources122, supplemental sources 124, comparison service 110, and user 160.Comparison service 110 is configured to provide operation 200 that isfurther described in FIG. 2.

As depicted, comparison service 110 communicates with informationsources 122 and supplemental sources 124 to obtain data objects from thesources. These data objects may include forms, official documents, orsome other similar data object. As the objects are obtained, either byinformation sources 122 automatically providing the information or viarequest from comparison service 110, comparison service 110 generatesand maintains a data structure to cohesively manage the information fromthe various sources. In some implementations, the data objects that arereceived from information sources 122 and supplemental sources 124 maybe provided using different format types. For example, a firstinformation source may use a format type associated with a firstgeographic location (e.g. a first form), while a second informationsource may use a format type associated with a second geographiclocation (e.g. a second form). As a result, as the data objects areobtained, data items within the object (e.g. monetary values, ratings,scores, and the like) are extracted and placed within a common datastructure capable of comparing information from multiple differentformats. Thus, although a rating from a first information source may bein a first location for a data object, and a similar rating from asecond information source may be in a second location, the common datastructure may store the data in such a manner that the similar valuescan be compared.

As the data objects are obtained and the data items therein are placedwithin the common data structure, user 160 may generate requests tocompare information between the different information sources. As anexample, user 160 may provide a request for a particular event. Inresponse to the request, comparison service 110 will identify data itemsthat are relevant to the request and provide information to the userbased on the identified data items, wherein the information permits theuser to efficiently compare data items of similar data types acrossmultiple information sources.

To further demonstrate operations of computing environment 100, FIG. 2is provided. FIG. 2 illustrates an operation 200 of a comparison serviceaccording to an implementation. The processes of operation 200 aredescribed parenthetically in the paragraphs that follow with referenceto systems and elements of computing environment 100 of FIG. 1.

In the example of operation 200, comparison service 110 obtains (201)data objects in a plurality of formats corresponding to a plurality ofevents, wherein the data objects each comprise data items for theevents. In some implementations, the data objects may comprise forms,documents, or other similar objects that contain various statisticaldata items for a particular event. These data objects may comprisevarying formats based on the information source for the particular dataobject. In at least one implementation, based on the location of theinformation source (e.g. country, trade organization, and the like), theinformation source may use a particular format associated with thelocation. As a result, although two information sources may provide adata object with similar information, the format of the data objects maydiffer, creating difficulties in comparing similar data between theinformation sources.

Once the data objects are obtained from the information sources,operation 200 further maintains (202) a common data structure for theevents. This common data structure is used to relate data items ofsimilar type to other data items from other information sources. Forexample, comparison service 110 may receive three data objects fromthree different information sources, wherein the data objects may beprovided in three different formats. Once the objects are received, eachdata item within the data objects may be extracted and associated withsimilar data items from the other data objects. Consequently, if a dataitem represented an amount of time for a particular operation related toan event, such as completing a project for the event, the data item maythen be stored in the common data structure such that it may be relatedor compared to other times for the same operation related to the event.

While maintaining the common data structure for the events, operation200 further includes identifying (203) a user request for a summary ofan event in the plurality of events. In identifying this request,comparison service 110 may operate as a remote service, wherein usersvia remote consoles, such as desktop computing systems, laptop computingsystems, tablets, smartphones, or some other similar console computingsystems, may request comparison information for a particular event. Asan example, comparison service 110 may be configured to take bids toprovide services for a particular event and the information sources maycomprise contractors capable of fulfilling the requirements for theevent. As information is gathered from the contractors that may usevarious different formats, the information may be stored in a datastructure permitting data items of a similar data type to be comparedfor the event. While the data is maintained within the structure, a usermay request a summary comparison between each of the contractorsproviding a bid for the particular event.

Once a request is identified, operation 200 generates (204) an eventsummary based on the common data structure, and provides (205) the eventsummary to the requesting user. Returning to the example of requesting abid for a particular event, comparison service may identify relevantdata items from contractors related to the event, and generate a summaryusing the data items. In some implementations, the comparison may beused to compare each of the contractors that are providing bids for theparticular event, wherein the requesting user may be provided withinformation about various data types and corresponding values for eachof the contractors. Accordingly, although each of the contractors mayprovide information using different formats, the data may be presentedin such a manner that similar data types may be compared.

In at least one implementation, in providing the summary to therequesting user, comparison service 110 may be used to promoteparticular data types for the comparison. These data types may bepromoted based on data items for the types meeting defined criteria. Forexample, if the value were numerical and data items from differentsources had a large discrepancy in their numerical value, thencomparison service 110 may flag the data type as a type that should bepromoted. Other examples, of promoting a particular type may includeidentifying when an information source has not provided a data item fora particular type, when values from one or more of the sources arehigher/lower than a predicted value, or some other similar criteria forpromoting a particular data type. In promoting the data type within thepresentation to the requesting user, comparison service 110 mayhighlight one or more data items that correspond to the data type, maymove the promoted data items into a better viewing position for the user(such as the top of the display), may bold or provide a different fontfor the promoted data items, or may provide the information in any othersimilar manner. By promoting particular data items for the requestinguser, the user may more easily analyze and process the varying datatypes to determine differences between the information sources.Referring again to the example of the contractors (information sources)providing bids for a particular event, the user may analyze differencesbetween the various contractors to identify a contractor capable ofproviding the required services.

As illustrated in computing environment 100, comparison service 110 mayalso use supplemental sources 124 in providing summary information aboutan event. In particular, supplemental sources 124 may not comprisedirect forms or input related to an event, but may comprise alternativesources related to an event. In some implementations, these alternativesources may comprise emails, chats, or some other similar data sourcerelated to the information sources. For example, when an informationsource of information sources 122 lacks a data item or value for aparticular data type, comparison service 110 may inspect supplementalsources 124 to determine if a value can be extracted. If an appropriatedata item can be identified, in some examples by applying naturallanguage operations on the information from supplemental sources, thendata time may be added to the common data structure to provideadditional information for an event. Additionally, supplemental sources124 may provide information about other similar events, wherein the datafor the other similar events may be compared against a current event.Referring again to the example of promoting particular data types, ifthe values from supplemental sources 124 differed greatly from thevalues for a particular event from information sources 122, then thedata type may be promoted for that event.

FIG. 3 illustrates an operational scenario of a comparison serviceaccording to an implementation. The operational scenario in FIG. 3includes information sources 301-303 and comparison service 310, whereincomparison service 310 further includes extract operation 320, data typeoperation 322, and maintain operation 324.

As described herein comparison service 310 may obtain data objects froma plurality of information sources 301-303, wherein the informationsources may comprise contractors providing bids for one or more events,companies providing cost and capability information, or some othersimilar information sources, wherein the data from the sources may becompared via comparison service 310. In the present implementation, inproviding the data objects to comparison service 310 the informationsources may use multiple formats for the data objects, which causesdifficulties in comparing data items/values from each of the informationsources.

As a result of the differing formats, extract operation of comparisonservice 310 is used to identify the various data items within each ofthe data objects. In some implementations, in extracting the data,extract operation 320 may identify a format associated with a receiveddata object, and based on the format, may identify the data items fromthe data object. For example, if a data object from information source301 were in a first format with three numerical values, and a dataobject from information source 302 were in a second format with threenumerical values, extract operation 320 may be used to extract the datavalues from both of the formats although the data may not be in the sameorder.

As the data is extracted using extract operation 320, data typeoperation 322 is used to identify the particular data type associatedwith each of the data items. These data items may include informationabout a particular event, such as total cost, total time, number ofemployees, or any other similar data type that might be consistentacross each of the information sources. In some examples, to determinethe data type, data type operation 322 may identify the format of thedata object that was received and determine the different data typesthat are included in that format. Thus, if a format provided a number ofemployees first and then provided a total cost of providing services foran event, data type operation 322 may associate a first value extractedwith an employee number data type, while type operation 322 mayassociated a second value extracted with a total cost data type.

Once a data type is identified for each of the data items, maintainmodule 324 is then used to maintain a data structure capable ofcomparing the data from each of the information sources. In this manner,for each event, data items of the same data type may be quicklyidentified for the information sources, such that they can be comparedby a user interested in the event. For example, when a user requests asummary of a particular event, comparison service 310 may identifyrelevant data items associated with the particular event, and present acomparison of data items from different information sources to therequesting user. Referring again to the example of information sourcesproviding a quantity of employees to support a particular event,comparison service 310 may provide a display to the requesting userpermitting the user to compare quantities from each of the informationsources. In this manner, rather than requiring each of the informationsources to provide data using the same format, comparison service 310may extract the relevant data and manage the data to be provided torequesting users.

As described herein, it should be understood that information sources301-303 may provide multiple data object per event. In providing thedata objects, comparison service 310 may be used to aggregate data itemsfrom each of the objects into singular data structure to be comparedagainst the data obtained from other information sources. Further, insome examples, it should be understood that conflicts may be presentedwhen multiple data objects are received for an event from a singularinformation source. For instance, if an information source providedmultiple data objects that each included information about the number ofemployees required to support an event, then comparison service 310 maybe responsible for managing the conflicts presented within the dataobjects. In managing the conflicts, the most recently identified dataitem may be promoted over other data items of the same data type, themost frequently encountered data item may be promoted over other dataitems of the same data type, or some other similar management processfor conflicts.

FIG. 4 illustrates a data structure 400 for managing and comparing datafrom multiple information sources according to an implementation. Datastructure 400 includes events 402-403, data types 420-424, and sources410-413. Although demonstrated with three sources per event, it shouldbe understood that additional or fewer sources may provide data for datastructure 400.

As described herein, a comparison service may communicate with one ormore information to sources to obtain data objects related to events.These information sources may comprise contractors, companies, or someother similar information source in some examples. Additionally, thedata objects may provide information related to costs, number ofemployees, locations, or some other similar information related to aparticular event. As the data objects are received, the comparisonservice may extract data from the objects and use the data to populatedata structure 400. In particular, because the data objects may bereceived in different formats, the comparison service may be required toextract data, identify a data type associated with each of the dataitems, and store the data in data structure 400, such that it can becompared to data from other information sources. Referring to an examplefor event 402, data for data type 422 may be stored in such a manner,such that it can be compared across sources 410-412. As a result, when arequest is generated by a user of the service, data may be retrievedfrom data structure 400 and presented to the user, permitting the userto compare the information from the various sources.

FIG. 5 illustrates an operational scenario 500 for prioritizing data fora user of a comparison service according to an implementation.Operational scenario 500 includes operations 510-512 and user 502.

In operation, users of a comparison service provide requests to receiveinformation about particular events. Specifically, the users maygenerate requests for data from multiple information sources, whereinthe data from each of the sources may be compared with data from theother sources. In the present implementation, user 502 generates eventrequest 505 that is identified by the comparison service. In response tothe request, operation 510 is initiated that identifies data related tothe event. Referring back to the data structure in FIG. 4, as dataobjects are received, data items within the objects are extracted andorganized within a data structure, such that similar data items frommultiple information sources may be compared to one another. Inparticular, when a user generates the request, the user may specify aparticular event of a plurality of events for which a summary should begenerated. As a result, data derived from information sources and dataobjects related to the event would be identified to support the request.

Once data items 515 are identified to support the request, operation 511identifies data types of interest for the event. In identifying datatypes of interest, the comparison service may use various criteria, suchas thresholds, to determine information that should be prioritized forthe requesting user. In one implementation, the criteria may comprisedifferences in data values between the various information sources. Forexample, if four information sources were providing information about anevent, and three had a similar value for a particular data type, whilethe fourth had a value that met criteria indicating a large deviationfrom the other values, the data type may be identified as one ofinterest for the user. In determining whether a value is too differentfrom the others as to be flagged for a data type of interest, thecomparison service may use percentages, set numerical values, or someother similar differencing criteria to identify when one or more valuesare not similar to other values. In another implementation, the criteriainformation for identifying data types of interest may be based on othersimilar events. In particular, when a user requests a particular event,the comparison service may identify similar events and data items thatcorrespond to the event. As an example, if the event comprised a partyand the information sources were contractors to support the party, thenvalues from other similar parties may be compared with current valuesand the associated information sources. Thus, if one or more of thecurrent information sources provided a value that is inconsistent withprevious values, that value type may be flagged for the requesting user.

Although these are example criteria for identifying a data type ofinterest, it should be understood that other criteria may be used inidentifying data types of interest. These criteria may be a minimumvalue (e.g. a minimum monetary value), a maximum value (e.g. a number ofemployees), or some other similar type of criteria.

After the data types of interest are identified, operation 512 generatesa display prioritizing the data types of interest. In prioritizing thedata types of interest over the other data types for the event, thetypes of interest may be highlighted, may be promoted to a particularlocation on the display, may be bolded or italicized, or any othersimilar operation of promoting a particular data type. In someimplementations, users may interact with the comparison service via aremote console device, such as a laptop computer, desktop computer,smartphone, tablet computer, or some other similar computing system. Togenerate requests, the user may use a web browser or some otherapplication on the computing system to generate requests that arereceived by the comparison system. Once the requests are received, thecomparison system may employ operations 510-512 as described herein toprovide a comparison summary to the requesting user.

FIG. 6 illustrates a user interface 600 for managing the comparison ofdata according to an implementation. User interface 600 is an examplesummary that can be provided to a user in response to a request for asummary of a particular event. In the present implementation, the userinterface includes comparison information for three differentinformation sources. For each of the information sources, illustrated onuser interface 600 as “ALPHA,” “BETA,” and “THETA,” data is providedthat corresponds to various data types. In particular, as a comparisonservice receives data objects from each of the information sources, thedata items from the objects may be placed into at least one datastructure capable of directly comparing similar data types. Thus, whileeach of “ALPHA,” “BETA,” and “THETA” may use different formats for theirobjects, the data within the objects may be directly compared.

In addition to identifying similar data types from the various formatsand information sources, the comparison operation may further identifyparticular data types of interest when providing the information to arequesting user. To identify the data types of interest, in someimplementations, the data items associated with the data types may becompared to defined criteria. The criteria may be used on comparing thedata items themselves (such as the numerical values for a data type),may be used in comparing the current data items to data items of othersimilar event, may be used in comparing the current data items to userdefined values for the data items of that data type, or may be used inany other similar manner.

Referring to the example in user interface 600, in providing thecomparison information to the requesting user, the data type for“Production Cost” has been flagged as a data type of interest for theuser. This data type may have been identified based on the cost for“ALPHA” being lower than the other information sources, may be based onone or more of the production costs being below a predefined thresholdor lower than previously presented production costs, or may beidentified in any similar manner. As a result of being identified, dataitems related to the production cost are provided in a different fontthan data items related to other data types, permitting the user toquickly identify and analyze the information for the data type to makedecisions regarding the particular event.

Although demonstrated in the example of FIG. 6 as bolding and increasingthe font size for the data type of interest, it should be understoodthat other operations may be employed to promote a data type ofinterest. These other operations may include placing the data item ofinterest in a location that is in a better location of the display to beacknowledged by the user, may be highlighted, provided in a differentcolor font, or promoted for the user in any other similar manner.

FIG. 7 illustrates a computing system 700 manage and compare data frommultiple information sources according to an implementation. Computingsystem 700 is representative of any computing system or systems withwhich the various operational architectures, processes, scenarios, andsequences disclosed herein for an event comparison service may beimplemented. Computing system 700 is an example of comparison service110 and 310, although other examples may exist. Computing system 700comprises communication interface 701, user interface 702, andprocessing system 703. Processing system 703 is linked to communicationinterface 701 and user interface 702. Processing system 703 includesprocessing circuitry 705 and memory device 706 that stores operatingsoftware 707. Computing system 700 may include other well-knowncomponents such as a battery and enclosure that are not shown forclarity.

Communication interface 701 comprises components that communicate overcommunication links, such as network cards, ports, radio frequency (RF),processing circuitry and software, or some other communication devices.Communication interface 701 may be configured to communicate overmetallic, wireless, or optical links. Communication interface 701 may beconfigured to use Time Division Multiplex (TDM), Internet Protocol (IP),Ethernet, optical networking, wireless protocols, communicationsignaling, or some other communication format—including combinationsthereof. In some implementations, communication interface 701 may beconfigured to communicate with information sources to obtain dataobjects related to various events. Additionally, in some examples,communication interface 701 may be configured to communicate with one ormore end user console systems to receive summary requests from end usersand provide the users with generated summaries.

User interface 702 comprises components that interact with a user toreceive user inputs and to present media and/or information. Userinterface 702 may include a speaker, microphone, buttons, lights,display screen, touch screen, touch pad, scroll wheel, communicationport, or some other user input/output apparatus—including combinationsthereof. User interface 702 may be omitted in some examples. In someimplementations, user interface 702 may be used in obtaining usersummary requests.

Processing circuitry 705 comprises microprocessor and other circuitrythat retrieves and executes operating software 707 from memory device706. Memory device 706 may include volatile and nonvolatile, removableand non-removable media implemented in any method or technology forstorage of information, such as computer readable instructions, datastructures, program modules, or other data. Memory device 706 may beimplemented as a single storage device, but may also be implementedacross multiple storage devices or sub-systems. Memory device 706 maycomprise additional elements, such as a controller to read operatingsoftware 707. Examples of storage media include random access memory,read only memory, magnetic disks, optical disks, and flash memory, aswell as any combination or variation thereof, or any other type ofstorage media. In some implementations, the storage media may be anon-transitory storage media. In some instances, at least a portion ofthe storage media may be transitory. It should be understood that in nocase is the storage media a propagated signal.

Processing circuitry 705 is typically mounted on a circuit board thatmay also hold memory device 706 and portions of communication interface701 and user interface 702. Operating software 707 comprises computerprograms, firmware, or some other form of machine-readable programinstructions. Operating software 707 includes obtain module 708,maintain module 709, and request module 710, although any number ofsoftware modules may provide the same operation. Operating software 707may further include an operating system, utilities, drivers, networkinterfaces, applications, or some other type of software. When executedby processing circuitry 705, operating software 707 directs processingsystem 703 to operate computing system 700 as described herein.

In one implementation, obtain module 708 directs processing system 703to obtain data objects from a plurality of information sources, whereinthe data objects provide data related to a plurality of events. In someimplementations, the information sources may comprise contractors,companies, or some other similar entity that is providing information,such as bids, cost estimates, or some other similar information for aparticular event. These entities may use varying data object formats,which may comprise different forms, different formal documents, or someother format.

As a result of the differing formats, maintain module 709 directsprocessing system 703 to store data values from the data objects in amanner such that data items/values for the same event may be comparedagainst other data values of the same data type. Thus, if a first valuefor wardrobe cost were provided from a first information source for anevent, that first value may be stored in a manner that it can becompared to other values of the same type for the event. Once stored,request module 710 may direct processing system 703 to receive a requestfrom an end user requesting comparison information for a particularevent. In response to the request, request module 710 may identify datathat corresponds to the event using the at least one data structuremaintained by maintain module 709, and will provided the identified datato the requesting user. In some implementations, in providing the datato the requesting user, request module 710 may generate a display thatpermits the user to compare data types across multiple informationsources.

As an example of providing information to a user that requestsinformation about contractors for a party, each of the contractors(examples of information sources) may provide values corresponding todifferent data types for the party (e.g. number of personnel, cost ofcake, cost of decorations, and the like). After the information isprovided from the contractors and sorted into at least one datastructure, the user may request a comparison summary for the party,wherein the summary may present values for each data type such that theycan be compared across the contractors. Further, in some examples, atleast a subset of the data types may be promoted over other data typesbased on criteria associated with the data type. The criteria maycomprise criteria that compares that values for the data type (e.g. onedata value may not closely reflect the other data items, or a data valuemay be missing from a particular source), the criteria may comprisecriteria that relates values for the current event to values of othersimilar events (e.g. a value is much larger or smaller than values foranother similar event), or may comprise some other criteria capable ofbeing applied to an individual data type. In presenting the prioritizedvalues, the identified data types may be highlighted, bolded, providedin a different font or size, promoted in the viewing space for therequesting user, or promoted in any other similar manner. Oncepresented, the user may be more capable of selecting an appropriateinformation source to support the event.

In some implementations, in addition to receiving the data objects, suchas forms and official documents, from each of the information sources,computing system 700 may also obtain supplementary information fromsources, such as email, instant messaging, and other similar sources.The information from these sources may be processed to identify relevantdata items that can also be stored in the data structure from theprimary information sources.

Returning to the elements of FIG. 1, information sources 122 andsupplemental sources 124 may each comprise one or more computing systems(such as desktop computers, server computers, laptop computers, and thelike) for a particular contractor, company, or some other similarinformation source. These computing systems may each comprise one ormore communication interfaces and network interfaces, processingsystems, computer systems, microprocessors, storage systems, storagemedia, or some other processing devices or software systems.

Comparison service 110 may comprise communication interfaces and networkinterfaces, processing systems, computer systems, microprocessors,storage systems, storage media, or some other processing devices orsoftware systems, and can be distributed among multiple devices.Comparison service 110 may include software such as an operating system,logs, databases, utilities, drivers, networking software, and othersoftware stored on a computer-readable medium. Comparison service 110may comprise one or more serving computing systems, desktop computingsystems, or some other similar computing system.

Communication between comparison service 110 and sources 122 and 124 mayuse metal, glass, optical, air, space, or some other material as thetransport media. Communication between the host computing system andother computing nodes 130 may use various communication protocols, suchas Time Division Multiplex (TDM), asynchronous transfer mode (ATM),Internet Protocol (IP), Ethernet, synchronous optical networking(SONET), hybrid fiber-coax (HFC), circuit-switched, communicationsignaling, wireless communications, or some other communication format,including combinations, improvements, or variations thereof.Communication between comparison service 110 and sources 122 and 124 maybe a direct link or can include intermediate networks, systems, ordevices, and can include a logical network link transported overmultiple physical links.

The included descriptions and figures depict specific implementations toteach those skilled in the art how to make and use the best option. Forthe purpose of teaching inventive principles, some conventional aspectshave been simplified or omitted. Those skilled in the art willappreciate variations from these implementations that fall within thescope of the invention. Those skilled in the art will also appreciatethat the features described above can be combined in various ways toform multiple implementations. As a result, the invention is not limitedto the specific implementations described above, but only by the claimsand their equivalents.

What is claimed is:
 1. A method of operating a comparison service tomanage data from multiple information sources comprising: obtaining,from a plurality of data sources, data objects in a plurality of formatscorresponding to an event, wherein the data objects each comprise one ormore data items associated with the event; maintaining a common datastructure for the event, wherein the data structure relates data itemsof similar data type from the plurality of data sources; identifying arequest for a summary of the event; in response to the request,generating an event summary based on the common data structure, whereinthe event summary compares data items of similar data type from theplurality of data sources; and generating a display of the eventsummary.
 2. The method of claim 1, wherein maintaining the common datastructure comprises: for each data object, extracting one or more dataitems from the data object; identifying a data type associated with eachof the one or more data items; storing each of the one or more dataitems in the common data structure based on the data type.
 3. The methodof claim 1, wherein identifying the request for the summary of the eventcomprises receiving the request from a console device.
 4. The method ofclaim 1, wherein generating the event summary based on the common datastructure comprises: identifying one or more data types of interest forthe event based on the common data structure; and generating the eventsummary based on the one or more data types of interest and the commondata structure.
 5. The method of claim 4, wherein identifying the one ormore data types of interest for the event based on the common datastructure comprises identifying the one or more data types of interestbased on data items associated with the one or more data types ofinterest meeting criteria.
 6. The method of claim 4, wherein identifyingthe one or more data types of interest for the event based on the commondata structure comprises for a data type in the common data structure:determining whether a difference of two or more data items thatcorrespond to the data type exceed a threshold value; and when the twoor more data items that correspond to the data type exceed the thresholdvalue, classifying the data type as a data type of interest.
 7. Themethod of claim 4, wherein the display of the event summary promotes theone or more data types of interest over other data types related to theevent.
 8. The method of claim 4, wherein the display of the eventsummary promotes the one or more data types of interest over the otherdata types related to the event by displaying the one or more data typesof interest in a different font, different size, different color, ordifferent highlight than the other data types related to the event. 9.The method of claim 1, wherein the plurality of data sources comprisescompanies or contractors.
 10. An apparatus comprising: one or morenon-transitory computer readable storage media; a processing systemoperatively coupled to the one or more non-transitory computer readablemedia; and program instructions stored on the one or more non-transitorycomputer readable media that, when read and executed by the processingsystem, direct the processing system to: obtain, from a plurality ofdata sources, data objects in a plurality of formats corresponding to anevent, wherein the data objects each comprise one or more data itemsassociated with the event; maintain a common data structure for theevent, wherein the data structure relates data items of similar datatype from the plurality of data sources; identify a request for asummary of the event; in response to the request, generate an eventsummary based on the common data structure, wherein the event summarycompares data items of similar data type from the plurality of datasources; and generate a display of the event summary.
 11. The apparatusof claim 10, wherein maintaining the common data structure comprises:for each data object, extracting one or more data items from the dataobject; identifying a data type associated with each of the one or moredata items; storing each of the one or more data items in the commondata structure based on the data type.
 12. The apparatus of claim 10,wherein the plurality of formats comprises one or more document formats,emails, or messages.
 13. The apparatus of claim 10, wherein generatingthe event summary based on the common data structure comprises:identifying one or more data types of interest for the event based onthe common data structure; and generating the event summary based on theone or more data types of interest and the common data structure. 14.The apparatus of claim 13, wherein identifying the one or more datatypes of interest for the event based on the common data structurecomprises identifying the one or more data types of interest based ondata items associated with the one or more data types of interestmeeting criteria.
 15. The apparatus of claim 13, wherein identifying theone or more data types of interest for the event based on the commondata structure comprises for a data type in the common data structure:determining whether a difference of two or more data items thatcorrespond to the data type exceed a threshold value; and when the twoor more data items that correspond to the data type exceed the thresholdvalue, classifying the data type as a data type of interest.
 16. Theapparatus of claim 13, wherein the display of the event summary promotesthe one or more data types of interest over other data types related tothe event.
 17. The apparatus of claim 13, wherein the display promotesthe one or more data types of interest over the other data types relatedto the event by displaying the one or more data types of interest in adifferent font, different size, different color, or different highlightthan the other data types related to the event.
 18. The apparatus ofclaim 13, wherein the plurality of data sources comprises companies orcontractors.
 19. One or more non-transitory computer readable storagemedia comprising: program instructions that, when executed by aprocessing system, direct the processing system to: obtain, from aplurality of data sources, data objects in a plurality of formatscorresponding to an event, wherein the data objects each comprise one ormore data items for the event; maintain a data structure for the event,wherein the data structure classifies data items from the data objectsinto data types, and wherein the data structure relates data items ofsimilar data type from the plurality of data sources; identify a requestfor a summary of the event; identify one or more data types in thecommon data structure that satisfy criteria to be classified as datatypes of interest; in response to the request, generate an event summarybased on the data types of interest and the common data structure,wherein the event summary compares data items of similar data type fromthe plurality of data sources; and generate a display of the eventsummary.
 20. The one or more non-transitory computer readable storagemedia of claim 19, wherein the program instructions to generate thedisplay of the event summary promotes the one or more data types ofinterest over other data types related to the event.